import matplotlib.pyplot as plt
import numpy as np

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False


# 1. 连续函数示例：正弦函数
x = np.linspace(0, 4*np.pi, 1000)
y_sin = np.sin(x)

plt.figure(figsize=(12, 8))

# 正弦函数 - 连续函数
plt.subplot(2, 3, 1)
plt.plot(x, y_sin, 'b-', linewidth=2)
plt.title('连续函数: y = sin(x)')
plt.grid(True)

# 2. 符号函数 - 在x=0处不连续
x_sgn = np.linspace(-2, 2, 1000)
y_sgn = np.sign(x_sgn)

plt.subplot(2, 3, 2)
plt.plot(x_sgn, y_sgn, 'r-', linewidth=2)
plt.plot(0, 0, 'ro', markersize=8, fillstyle='none')
plt.title('符号函数: y = sgn(x)')
plt.grid(True)

# 3. 取整函数 - 在整数点不连续
x_floor = np.linspace(-3, 3, 1000)
y_floor = np.floor(x_floor)

plt.subplot(2, 3, 3)
for i in range(-3, 3):
    mask = (x_floor >= i) & (x_floor < i+1)
    plt.plot(x_floor[mask], y_floor[mask], 'g-', linewidth=2)
plt.title('取整函数: y = [x]')
plt.grid(True)

plt.tight_layout()
plt.show()
